﻿/**
 * Created by Danny on 2015/9/22 15:30.
 */
var formidable = require('formidable');
var path = require("path");
var fs = require("fs");
var db = require('../models/tool/db');
var settings = require("../settings");
var files = require('../models/file');
var moment = require('moment');
moment().format();
// var sd = require("silly-datetime");
var bbkzSene = null;

//测试socket
exports.cheshiSocker = function(req,res,next) {
    res.render("./indexSocke");
}

//进入管理页面时
exports.showAdmin = function(req,res,next){
    res.render("./login");
}
exports.showHome = function (req,res,next) {
    console.log(req.session);
    if(req.session.login!= '1'){
        res.render("login");
        return;
    }
    res.render("mshome",{
        "userName": req.session.userName,
    });
}
//版本控制
exports.showBbkz = function (req,res,next) {
    console.log('版本控制' + req.session);
    if(req.session.login!= '1'){
        res.render("login");
        return;
    }
    if (bbkzSene == 1){
        res.render("bbkz",{
            "userName": req.session.userName,
            "azhzdmoban" : "class=active",
            "azysdmoban" : "",
            "ioshzdmoban" : "",
            "iosysdmoban" : ""
        });
    }else if (bbkzSene == 2){
        res.render("bbkz",{
            "userName": req.session.userName,
            "azhzdmoban" : "",
            "azysdmoban" : "class=active",
            "ioshzdmoban" : "",
            "iosysdmoban" : ""
        });
    }else if (bbkzSene == 3){
        res.render("bbkz",{
            "userName": req.session.userName,
            "azhzdmoban" : "",
            "azysdmoban" : "",
            "ioshzdmoban" : "class=active",
            "iosysdmoban" : ""
        });
    }else{
        res.render("bbkz",{
            "userName": req.session.userName,
            "azhzdmoban" : "",
            "azysdmoban" : "",
            "ioshzdmoban" : "",
            "iosysdmoban" : "class=active"
        });
    }
}
//取出各个历史版本
exports.nodeTakeBbkz = function (req, res, next) {
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
        if (err) {
            //失败
            res.send({
                'isSucceed' : "0",
                'msg' : '链接失败'
            });
            return;
        }
        if (fields.appId == '1'){
            db.mlfindfypx("azhzdbnkz",{},0,10,{"date":-1},function(err,result){
                if (err){
                    res.send({
                        'isSucceed' : "2",
                        'msg' : '数据库错误'
                    });
                    return;
                }
                console.log(result);
                res.send(result);
                return;
            });
        }else if (fields.appId == '2'){
            db.mlfindfypx("azysdbnkz",{},0,10,{"date":-1},function(err,result){
                if (err){
                    res.send({
                        'isSucceed' : "2",
                        'msg' : '数据库错误'
                    });
                    return;
                }
                res.send(result);
                return;
            });
        }else if (fields.appId == '3'){
            db.mlfindfypx("ioshzdbnkz",{},0,10,{"date":-1},function(err,result){
                if (err){
                    res.send({
                        'isSucceed' : "2",
                        'msg' : '数据库错误'
                    });
                    return;
                }
                res.send(result);
                return;
            });
        }else {
            db.mlfindfypx("iosysdbnkz",{},0,10,{"date":-1},function(err,result){
                if (err){
                    res.send({
                        'isSucceed' : "2",
                        'msg' : '数据库错误'
                    });
                    return;
                }
                res.send(result);
                return;
            });
        }
    })
}
//添加版本控制
exports.doAddBangBen = function (req,res,next) {
    //得到用户填写的东西
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
        if (err) {
            //失败
            res.send({
                'isSucceed': "0",
                'msg': '链接失败'
            });
            return;
        }
        if (fields.appId == '1'){//添加到安卓患者端
            fields['date'] = new Date();
            db.insertOne('azhzdbnkz',fields,function (err, result) {
                console.log('添加成功');
                res.redirect('/');
                return;
            });
        }else if (fields.appId == '2'){//添加到安卓医生端
            fields['date'] = new Date();
            db.insertOne('azysdbnkz',fields,function (err, result) {
                res.send({
                    'isSucceed' : "1",
                    'msg' : '成功'
                });
                return;
            });
        }else if (fields.appId == '3'){//添加到ios患者端
            fields['date'] = new Date();
            db.insertOne('ioshzdbnkz',fields,function (err, result) {
                res.send({
                    'isSucceed' : "1",
                    'msg' : '成功'
                });
                return;
            });
        }else {//添加到ios医生端
            fields['date'] = new Date();
            db.insertOne('iosysdbnkz',fields,function (err, result) {
                res.send({
                    'isSucceed' : "1",
                    'msg' : '成功'
                });
                return;
            });
        }
    });
}
//版本控制请求
exports.nodeBbkz = function (req,res,next) {
    //得到用户填写的东西
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
        if (err) {
            //失败
            res.send({
                'isSucceed' : "0",
                'msg' : '链接失败'
            });
            return;
        }
        //去数据库匹配
        //查找用户名和密码,没有直接报错
        console.log(fields);
        if (fields.appId == '1'){
            bbkzSene = 1;
            res.send({
                'isSucceed' : "1",
                'msg' : '成功',
                'url' : settings.fwqUrl + '/bbkz' + "?1"
            });
            return;
        }else if(fields.appId == '2'){
            bbkzSene = 2;
            res.send({
                'isSucceed' : "1",
                'msg' : '成功',
                'url' : settings.fwqUrl + '/bbkz' + "?2"
            });
            return;
        }else if (fields.appId == '3'){
            bbkzSene = 3;
            res.send({
                'isSucceed' : "1",
                'msg' : '成功',
                'url' : settings.fwqUrl + '/bbkz' + "?3"
            });
            return;
        }else{
            bbkzSene = 4;
            res.send({
                'isSucceed' : "1",
                'msg' : '成功',
                'url' : settings.fwqUrl + '/bbkz' + "?4"
            });
            return;
        }
    });
}
//登录
exports.nodeLogin = function (req, res, next) {
    //得到用户填写的东西
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
      if (err) {
          //失败
          res.send({
              'isSucceed' : "0",
              'msg' : '链接失败'
          });
          return;
      }
      //去数据库匹配
      //查找用户名和密码,没有直接报错
        console.log(fields);
        db.mlfindOne("users",fields,function (err, docs) {
            if (err){
                res.send({
                    'isSucceed' : "2",
                    'msg' : '数据库错误'
                });
                return;
            }
            if (docs.length == 0){
                res.send({
                    'isSucceed' : "3",
                    'msg' : '账号或密码错误'
                });
                return;
            }else{
                //成功后返回
                //记录session
                req.session.login = "1";
                req.session.userName = docs[0].userName;
                req.session.jurisdiction = docs[0].jurisdiction;
                res.send({
                    'isSucceed' : "1",
                    'msg' : '成功',
                    'url' : settings.fwqUrl + '/home'
                });
                return;
            }
        });
    });
}
/********************意见反馈******************/
//患者端意见反馈
exports.postAdd_hzd_yjfk = function (req, res, next) {
    //得到用户填写的东西
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
        if (err){
            //失败
            res.send({
                'isSucceed' : "0",
                'msg' : '链接失败'
            });
            return;
        }
        //成功
        fields['port'] = settings.HZD_ID;
        fields['date'] = new Date();
        fields['isHandle'] = 0;
        console.log(fields);
        //保存到数据库
        db.insertOne('hzd_yjfk', fields, function (err, result) {
            if (err){
                //失败后返回
                res.send({
                    'isSucceed' : "0",
                    'msg' : '保存数据库失败'
                });
                return;
            }
            console.log('保存成功');
            //成功后返回
            res.send({
                'isSucceed' : "1",
                'msg' : '成功'
            });
            return;
        });
    });
}

//医生端意见反馈
exports.postAdd_ysd_yjfk = function (req, res, next) {
    //得到用户填写的东西
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
        if (err){
            //失败
            res.send({
                'isSucceed' : "0",
                'msg' : '链接失败'
            });
            return;
        }
        //成功
        fields['port'] = settings.YSD_ID;
        fields['date'] = new Date();
        fields['isHandle'] = 0;
        console.log(fields)
        //保存到数据库
        db.insertOne('ysd_yjfk', fields, function (err, result) {
            if (err){
                //失败后返回
                res.send({
                    'isSucceed' : "0",
                    'msg' : '保存数据库失败'
                });
                return;
            }
            console.log('保存成功');
            //成功后返回
            res.send({
                'isSucceed' : "1",
                'msg' : '成功'
            });
            return;
        });
    });
}
/**********************版本控制*************************/
//安卓患者端版本控制
exports.doAZHZDBangBen = function (req, res, next) {
    //得到用户填写的东西
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
        console.log('患者端'+fields);
        if (err){
            //失败
            res.send({
                'isSucceed' : "0",
                'msg' : '链接失败'
            });
            return;
        }
        //成功后返回
        //查询数据库数据
        db.mlfindfypx("azhzdbnkz",{},0,1,{"date":-1},function(err,docs){
            if(err){
                //失败
                res.send({
                    'isSucceed' : "0",
                    'msg' : '数据库连接失败'
                });
                return;
            }
            console.log(fields);
            var codeInt = Number(fields.versionCode);
            console.log(codeInt);
            console.log(docs[0]);
            // files.banbenkongzhi(codeInt , docs[0] , function (json) {
            //     res.send(json);
            // });
            //判断版本
            if(Number(docs[0].qiangzhi) > codeInt){
                docs[0]['versionCode'] = 2;
                res.send(docs[0]);
                console.log(codeInt);
                return;
            }
            if (Number(docs[0].zuixin) > codeInt){
                console.log(Number(docs[0].zuixin));
                docs[0]['versionCode'] = 1;
                console.log(codeInt);
                res.send(docs[0]);
                return;
            }
            docs[0]['versionCode'] = 0;
            res.send(docs[0]);
            return;
        });
    });
};
//安卓医生端版本控制
exports.doAZYSDBangBen = function (req, res, next) {
    //得到用户填写的东西
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
        console.log('患者端'+fields);
        if (err){
            //失败
            res.send({
                'isSucceed' : "0",
                'msg' : '链接失败'
            });
            return;
        }
        //成功后返回
        //查询数据库数据
        db.mlfindfypx("azysdbnkz",{},0,1,{"date":-1},function(err,docs){
            if(err){
                //失败
                res.send({
                    'isSucceed' : "0",
                    'msg' : '数据库连接失败'
                });
                return;
            }
            console.log(fields);
            var codeInt = Number(fields.versionCode);
            console.log(codeInt);
            console.log(docs[0]);
            // files.banbenkongzhi(codeInt , docs[0] , function (json) {
            //     res.send(json);
            // });
            //判断版本
            if(docs[0].qiangzhi > codeInt){
                docs[0]['versionCode'] = 2;
                res.send(docs[0]);
                return;
            }
            if (docs[0].zuixin > codeInt){
                docs[0]['versionCode'] = 1;
                res.send(docs[0]);
                return;
            }
            docs[0]['versionCode'] = 0;
            res.send(docs[0]);
            return;
        });
    });
};
//IOS患者端版本控制
exports.doIOSHZDBangBen = function (req, res, next) {
    //得到用户填写的东西
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
        console.log('患者端'+fields);
        if (err){
            //失败
            res.send({
                'isSucceed' : "0",
                'msg' : '链接失败'
            });
            return;
        }
        //成功后返回
        //查询数据库数据
        db.mlfindfypx("ioshzdbnkz",{},0,1,{"date":-1},function(err,docs){
            if(err){
                //失败
                res.send({
                    'isSucceed' : "0",
                    'msg' : '数据库连接失败'
                });
                return;
            }
            console.log(fields);
            var codeInt = Number(fields.versionCode);
            console.log(codeInt);
            console.log(docs[0]);
            // files.banbenkongzhi(codeInt , docs[0] , function (json) {
            //     res.send(json);
            // });
            //判断版本
            if(docs[0].qiangzhi > codeInt){
                docs[0]['versionCode'] = 2;
                res.send(docs[0]);
                return;
            }
            if (docs[0].zuixin > codeInt){
                docs[0]['versionCode'] = 1;
                res.send(docs[0]);
                return;
            }
            docs[0]['versionCode'] = 0;
            res.send(docs[0]);
            return;
        });
    });
};
//IOS医生端版本控制
exports.doIOSYSDBangBen = function (req, res, next) {
    //得到用户填写的东西
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
        console.log('患者端'+fields);
        if (err){
            //失败
            res.send({
                'isSucceed' : "0",
                'msg' : '链接失败'
            });
            return;
        }
        //成功后返回
        //查询数据库数据
        db.mlfindfypx("iosysdbnkz",{},0,1,{"date":-1},function(err,docs){
            if(err){
                //失败
                res.send({
                    'isSucceed' : "0",
                    'msg' : '数据库连接失败'
                });
                return;
            }
            console.log(fields);
            var codeInt = Number(fields.versionCode);
            console.log(codeInt);
            console.log(docs[0]);
            // files.banbenkongzhi(codeInt , docs[0] , function (json) {
            //     res.send(json);
            // });
            //判断版本
            if(docs[0].qiangzhi > codeInt){
                docs[0]['versionCode'] = 2;
                res.send(docs[0]);
                return;
            }
            if (docs[0].zuixin > codeInt){
                docs[0]['versionCode'] = 1;
                res.send(docs[0]);
                return;
            }
            docs[0]['versionCode'] = 0;
            res.send(docs[0]);
            return;
        });
    });
};
/**********************好友操作*************************/
//添加好友
exports.doAddFriends = function (req, res, next) {
    //得到用户填写的东西
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields1, files) {
        //情况A发出加B的请求,B发出加A的请求时
        //A->B
        //B->A
        //如果一方同意,则这里addType(添加状态)都为1
        //如果一方删除,则删除方该条数据addType(添加状态)都为0,被删除方该条数据删除,
        /*****************************************************************/
        //查询数据库中是否有该条添加数据
        //打开数据库
        connection.connect();

        connection.query('SELECT * FROM addFriend WHERE ' +
            'addUserId=\''+ fields1.addUserId + '\' ' +
            'AND ' +
            'beAddUserId=\''+ fields1.beAddUserId + '\';', function(err, rows, fields) {
            if (err) {//提示数据库错误
                res.send({
                    'isSucceed' : 200,
                    'msg' : '数据库错误'
                });
                return
            }
            if (rows.length == 0){//A+b没有数据
                // 查询B+A是否有数据,如果有数据则添加成功,如果没有则添加这条数据
                connection.query('SELECT * FROM addFriend WHERE ' +
                    'addUserId=\''+ fields1.beAddUserId + '\' ' +
                    'AND ' +
                    'beAddUserId=\''+ fields1.addUserId + '\';', function(err, rows, fields) {
                    if (err) {//提示数据库错误
                        res.send({
                            'isSucceed' : 200,
                            'msg' : '数据库错误'
                        });
                        return
                    }
                    if (rows.length == 0){//没有数据,添加该条数据
                        var date = new Date();
                        date.setHours(date.getHours() + 8);
                        console.log(fields1)
                        var sql = 'INSERT INTO addFriend (addUserId,beAddUserId,addType,isRead) VALUES (' + fields1.addUserId + ',' + fields1.beAddUserId + ',' + '0'  + ',' + '0' + ');'
                        connection.query(sql, function(err, rows, fields) {
                            if (err) {
                                if (err) throw err;
                            };
                            res.send({
                                'isSucceed' : 400,
                                'msg' : '好友请求发送成功'
                            });
                        })
                    }else {//有数据添加到好友列表中,并修改状态,提示添加成功
                        //修改addFriend表中的添加状态
                        connection.query('UPDATE addFriend SET addType=1 WHERE addUserId= ' + fields1.beAddUserId +  ' AND beAddUserId='  + fields1.addUserId +  ';', function(err, rows, fields) {
                            if (err) {
                                console.log(err);
                            };
                            //好友表中添加数据
                            var beType = fields1.beUserType == 9 ? 2 : 1
                            var userType = fields1.userType == 9 ? 2 : 1
                            var sqls = 'INSERT INTO friend (userId,friendGroupingId,friendId) VALUES (' + fields1.addUserId + ','+ userType + ',' + fields1.beAddUserId + '),' +
                            '(' + fields1.beAddUserId + ','+ beType + ',' + fields1.addUserId + ');'
                            console.log(sqls)
                            connection.query(sqls, function(err, rows, fields) {
                                if (err) {
                                    if (err) throw err;
                                };
                                res.send({
                                    'isSucceed' : 400,
                                    'msg' : '添加成功'
                                });
                            })
                        })
                    }
                })
            }else {//A+B有数据,则提示用户等待好友同意,或该用户已经是您的好友了
                res.send({
                    'isSucceed' : 400,
                    'msg' : '等待该用户同意或该用户已是您的好友!!'
                });
            }
        });
        //关闭连接
        // connection.end();
    });
};

//查询新朋友
exports.getNewFriends = function (req, res, next) {
    //得到用户填写的东西
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
        var sqlStr = 'SELECT * FROM addFriend WHERE ' + 'beAddUserId=\''+ fields.userId + '\';';
        //查询用户,查找addFriend表中被添加人
        connection.query(sqlStr, function(err, rows, dataFields) {
            if (err) {//提示数据库错误
                res.send({
                    'isSucceed': 200,
                    'msg': '数据库错误'
                });
                return
            }
            console.log(dataFields)
            console.log(rows[0].id)
        })
    })
};


//删除好友
exports.doDeleteFriends = function (req, res, next) {
    //得到用户填写的东西
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
        console.log('删除好友:'+fields);
    });
};

//查询好友
exports.doMyFriends = function (req, res, next) {
    //得到用户填写的东西
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
        console.log('查询好友:'+fields);
    });
};

//设置备注
exports.doFriendsNote = function (req, res, next) {
    //得到用户填写的东西
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
        console.log('设置备注:'+fields);
    });
};


/********************圈子*********************/
//发送论坛(添加一条帖子)
exports.addForum = function (req, res, next) {
    //得到用户填写的东西
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
        console.log('添加一条帖子:'+fields);
        if (err){
            //失败
            res.send({
                'isSucceed' : "0",
                'msg' : '链接失败'
            });
            return;
        }
        //成功
        fields['date'] = new Date();
        //保存到数据库
        db.insertOne('yj_forum', fields, function (err, result) {
            if (err){
                //失败后返回
                res.send({
                    'isSucceed' : "0",
                    'msg' : '保存数据库失败'
                });
                return;
            }
            console.log('保存成功');
            //成功后返回
            res.send({
                'isSucceed' : "1",
                'msg' : '成功'
            });
            return;
        });
    });
};

